The exemplary embodiment relates to fields of image processing. It finds particular application in connection with the provision of a user interface for implementing image modifications within a document, and is described with particular reference thereto. However, a more general application can be appreciated with regards to image classification, image content analysis, image archiving, image database management and searching, and so forth.
Various color models exist for extracting and representing color within an image. A color model is an abstract mathematical model describing the way colors can be represented as tuples of numbers, typically as three or four values of color components (e.g., RGB and CMYK are color models). However, a color model with no associated mapping function to a color space is a more or less an arbitrary system without any universal understanding of color interpretation.
Providing a mapping function between a color model and a certain reference color space results in a definite “footprint” within the reference color space. This “footprint” is known as a gamut, which defines a new color space. For example, Adobe RGB and sRGB are two different absolute color spaces, both based on the RGB model.
However, color spaces can be defined without the use of a color model. These spaces, such as Pantone, are in effect a given set of names or numbers which are defined by the existence of a corresponding set of physical color swatches.
A wide range of colors can be created by the primary colors of pigment (cyan (C), magenta (M), yellow (Y), and black (K)). Those colors then define a specific color space. A 3-D space, for example, provides a unique position for every possible color that can be created by combining those three pigments.
However, other possible color spaces can exist as well. For instance, when colors are displayed on a computer monitor, they are usually defined in the RGB (red, green and blue) color space. This is another way of making nearly the same colors (limited by the reproduction medium, such as the phosphor (CRT) or filters and backlight (LCD)), where red, green and blue can be considered as the X, Y and Z axes. Another way of making the same colors is to use their Hue (X axis), Saturation (Y axis), and brightness Value (Z axis), which is known as the HSV color space.
Colors vary in several different ways, including hue (red vs. orange vs. blue), saturation, brightness, and gloss. Some color words are derived from the name of an object of that color, such as “orange” or “salmon”, while others are abstract, like “red”.
Every natural language that has words for colors is considered to have from two to twelve basic color terms. All other colors are usually considered by speakers of that language to be variants of these basic color terms. For example, English contains the eleven basic color terms “black,” “white,” “red,” “green,” “yellow,” “blue,” “brown,” “orange,” “pink,” “purple” and “gray,” which is reflected in the standard Crayola set. Italian and Russian have twelve, distinguishing blue and azure. Thus, different cultures have different terms for colors, and may also assign some color names to slightly different parts of the spectrum. For instance, the Chinese have a character for a color covering both blue and green, while blue and green traditionally are shades of that color character. South Korea, on the other hand, differentiates between blue and green with different characters.
Other properties within an image also exists other than color. For example, properties, such as the sharpness of an image, luminescence, blurriness, etc. can also be modified.
The need arises, therefore, for a natural language user interface (LUI) within image processing applications for image editing that can significantly bridge communication and cultural gaps among users and provide a simple and easy to use tool for creating desired changes. While the science of chromatics and the underlying terminology is understood by developers of LUIs, building a computer human interface with UI controls for creating, selecting, and modifying image data in applications for an everyday user presents a challenge.